// 导入LazyAnimate组件，用于实现懒加载动画
import { RouterProvider } from 'react-router-dom';

// 导入AntdContextHolder和AntdProvider组件，用于提供Ant Design的上下文和主题配置

import { AntdContextHolder, AntdProvider } from '@/common/antdConfig';
// 导入LangProvider组件，用于提供多语言支持
import { LangProvider } from '@/common/lang';
// 导入ThemeProvider组件，用于提供主题切换功能
import { ThemeProvider } from '@/common/theme';
import routers from '@/router';
import { setIsLogin, setToken, setUserInfo } from '@/store/modules/userStore';

// 定义App组件，作为应用的根组件
const App = () => {
	const dispatch = useAppDispatch();
	useOn('app-load', loginInfo => {
		console.log('app-load', loginInfo);
		handleCheckLogin(loginInfo);
	});
	const handleCheckLogin = (loginInfo: any) => {
		const { isLogin, token, userInfo } = loginInfo;

		// console.log('isLogin-isLogin', isLogin);
		if (isLogin) {
			dispatch(setIsLogin(true));

			if (userInfo?.id) {
				dispatch(setUserInfo(userInfo));
			}

			if (token) {
				dispatch(setToken(token));
			}
		}
	};
	return (
		// 使用ThemeProvider包裹应用，提供主题切换功能
		<ThemeProvider>
			{/* 使用LangProvider包裹应用，提供多语言支持 */}
			<LangProvider>
				{/* 使用AntdProvider包裹应用，提供Ant Design的上下文和主题配置 */}
				<AntdProvider>
					{/* 使用AntdContextHolder包裹应用，用于管理Ant Design的上下文 */}
					<AntdContextHolder>
						{/* 使用RouterProvider提供路由功能 */}
						<GlobalLoading />
						<RouterProvider router={routers} />
					</AntdContextHolder>
				</AntdProvider>
			</LangProvider>
		</ThemeProvider>
	);
};

// 导出App组件，作为应用的入口组件
export default App;
